package common.model.enums;

import lombok.Getter;
import org.springframework.boot.ApplicationRunner;

/**
 * 所有实现了{@link ApplicationRunner}的类的执行顺序，值越小越先执行
 *
 * @author 米泽鹏
 * @since 2022/12/26 下午 7:30
 */
@Getter
public enum ApplicationRunnerOrderEnum {

	/**
	 * 设置默认时区
	 */
	TIMEZONE_CONFIG(100, "TimezoneConfig"),

	/**
	 * Security存储策略配置
	 */
	SECURITY_STRATEGY_CONFIG(200, "SecurityStrategyConfig"),

	/**
	 * 系统缓存
	 */
	CACHE_APPLICATION_RUNNER(300, "CacheApplicationRunner"),

	/**
	 * 所有定时任务的启动器
	 */
	JOB_SCHEDULER(400, "JobScheduler");

	/**
	 * 顺序，值越小越先执行
	 */
	private final Integer order;

	/**
	 * 类名
	 */
	private final String className;

	ApplicationRunnerOrderEnum(Integer order, String className) {
		this.order = order;
		this.className = className;
	}

}
